package com.irdstudio.efp.esb.service.bo.req.psd;

import com.alibaba.fastjson.annotation.JSONField;
import com.irdstudio.efp.esb.common.constant.hj.HjBaseBean;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class PsdLoanReleaseReqBean extends HjBaseBean implements Serializable {
    public static final String SVCFLD = "MBSD_BP_LM";
    // 服务类型
    public static final String SVCTP = "1000";
    // 互金服务编码
    public static final String SERVICECD = "0205";
    {
        // 服务场景
        setSvcFld(PsdLoanReleaseReqBean.SVCFLD);
        // 服务类型
        setSvcTp(PsdLoanReleaseReqBean.SVCTP);
        // 服务编码
        setServiceCd(PsdLoanReleaseReqBean.SERVICECD);
    }

    // 客户号
    private String ClntNo;
    // 产品类型
    private String ProdType;
    // 币种
    private String CurrCd;
    // 合同金额
    private Double ContrAmt;
    // 交易机构号
    private String TxnBrId;
    // 贷款期限
    private String LoanTrm;
    // 期限类型
    private String TrmType;
    // 合同起始日期
    private String ContrBegDt;
    // 合同终止日期
    private String ContrEndDt;
    // 还款方式
    private String RpyMd;
    // 发放截止日
    private String DistrStopDt;
    // 贷款用途
    private String LoanUsg;
    // 贷款原因
    private String LoanRsn;
    // 担保方式
    private String GuarMd;
    // 统计标志1
    private String StatFlg1;
    // 统计标志2
    private String StatFlg2;
    // 统计标志3
    private String StatFlg3;
    // 授信合同号
    private String CrdtContrNo;
    // 贷款五级分类
    private String LoanLvl5Cl;
    // 项目号
    private String PrjNo;
    // 结息频率
    private String IntSetlFrqcy;
    // 正常利率
    private Double ComIntRate;
    // 罚息利率
    private Double PnyIntRate;
    // 复利利率
    private Double CmpdIntRate;
    // 罚息复利利率
    private Double PnyCmpdIntRate;
    // 复利的复利利率
    private Double CmpdedCmpdIntRate;
    // 正常利率浮动百分比
    private Double ComIntRateFltIntPrt;
    // 罚息利率浮动百分比
    private Double PnyIntRateFltIntPrt;
    // 复利利率浮动百分比
    private Double CmpdIntRateFltIntPrt;
    // 罚息复利利率浮动百分比
    private Double PnyCmpdIntRateFltIntPrt;
    // 复利的复利利率浮动百分比
    private Double CmpdedCmpdIntRateFltIntPrt;
    // 下次结息日期
    private String NxtIntSetlDt;
    // 结息日期
    private String IntSetlDt;
    // 手机号码
    private String MblNo;
    // 正常利率基准浮动百分点
    private Double NrlIntRtBnchmrkFlotPrcntl;
    // 罚息利率基准浮动百分点
    private Double PnyIntIntRtBnchmrkFlotPrcntl;
    // 复利利率基准浮动百分点
    private Double CmpdIntRtBnchmrkFlotPrcntl;
    // 罚息复利利率基准浮动百分点
    private Double PnyIntCmpdRtBnchmrkFlotPrcntl;
    // 复利的复利利率基准浮动百分点
    private Double CmpdIntCmpdRtBnchmrkFlotPrcntl;
    // 结算信息数组
    private List<IntSetInfArry> IntSetInfArrys = new ArrayList<>();

    @JSONField(name = "ClntNo")

    public String getClntNo() {
        return ClntNo;
    }

    @JSONField(name = "ClntNo")

    public void setClntNo(String ClntNo) {
        this.ClntNo = ClntNo;
    }


    @JSONField(name = "ProdType")

    public String getProdType() {
        return ProdType;
    }

    @JSONField(name = "ProdType")

    public void setProdType(String ProdType) {
        this.ProdType = ProdType;
    }


    @JSONField(name = "CurrCd")

    public String getCurrCd() {
        return CurrCd;
    }

    @JSONField(name = "CurrCd")

    public void setCurrCd(String CurrCd) {
        this.CurrCd = CurrCd;
    }


    @JSONField(name = "ContrAmt")

    public Double getContrAmt() {
        return ContrAmt;
    }

    @JSONField(name = "ContrAmt")

    public void setContrAmt(Double ContrAmt) {
        this.ContrAmt = ContrAmt;
    }


    @JSONField(name = "TxnBrId")

    public String getTxnBrId() {
        return TxnBrId;
    }

    @JSONField(name = "TxnBrId")

    public void setTxnBrId(String TxnBrId) {
        this.TxnBrId = TxnBrId;
    }


    @JSONField(name = "LoanTrm")

    public String getLoanTrm() {
        return LoanTrm;
    }

    @JSONField(name = "LoanTrm")

    public void setLoanTrm(String LoanTrm) {
        this.LoanTrm = LoanTrm;
    }


    @JSONField(name = "TrmType")

    public String getTrmType() {
        return TrmType;
    }

    @JSONField(name = "TrmType")

    public void setTrmType(String TrmType) {
        this.TrmType = TrmType;
    }


    @JSONField(name = "ContrBegDt")

    public String getContrBegDt() {
        return ContrBegDt;
    }

    @JSONField(name = "ContrBegDt")

    public void setContrBegDt(String ContrBegDt) {
        this.ContrBegDt = ContrBegDt;
    }


    @JSONField(name = "ContrEndDt")

    public String getContrEndDt() {
        return ContrEndDt;
    }

    @JSONField(name = "ContrEndDt")

    public void setContrEndDt(String ContrEndDt) {
        this.ContrEndDt = ContrEndDt;
    }


    @JSONField(name = "RpyMd")

    public String getRpyMd() {
        return RpyMd;
    }

    @JSONField(name = "RpyMd")

    public void setRpyMd(String RpyMd) {
        this.RpyMd = RpyMd;
    }


    @JSONField(name = "DistrStopDt")

    public String getDistrStopDt() {
        return DistrStopDt;
    }

    @JSONField(name = "DistrStopDt")

    public void setDistrStopDt(String DistrStopDt) {
        this.DistrStopDt = DistrStopDt;
    }


    @JSONField(name = "LoanUsg")

    public String getLoanUsg() {
        return LoanUsg;
    }

    @JSONField(name = "LoanUsg")

    public void setLoanUsg(String LoanUsg) {
        this.LoanUsg = LoanUsg;
    }


    @JSONField(name = "LoanRsn")

    public String getLoanRsn() {
        return LoanRsn;
    }

    @JSONField(name = "LoanRsn")

    public void setLoanRsn(String LoanRsn) {
        this.LoanRsn = LoanRsn;
    }


    @JSONField(name = "GuarMd")

    public String getGuarMd() {
        return GuarMd;
    }

    @JSONField(name = "GuarMd")

    public void setGuarMd(String GuarMd) {
        this.GuarMd = GuarMd;
    }


    @JSONField(name = "StatFlg1")

    public String getStatFlg1() {
        return StatFlg1;
    }

    @JSONField(name = "StatFlg1")

    public void setStatFlg1(String StatFlg1) {
        this.StatFlg1 = StatFlg1;
    }


    @JSONField(name = "StatFlg2")

    public String getStatFlg2() {
        return StatFlg2;
    }

    @JSONField(name = "StatFlg2")

    public void setStatFlg2(String StatFlg2) {
        this.StatFlg2 = StatFlg2;
    }


    @JSONField(name = "StatFlg3")

    public String getStatFlg3() {
        return StatFlg3;
    }

    @JSONField(name = "StatFlg3")

    public void setStatFlg3(String StatFlg3) {
        this.StatFlg3 = StatFlg3;
    }


    @JSONField(name = "CrdtContrNo")

    public String getCrdtContrNo() {
        return CrdtContrNo;
    }

    @JSONField(name = "CrdtContrNo")

    public void setCrdtContrNo(String CrdtContrNo) {
        this.CrdtContrNo = CrdtContrNo;
    }


    @JSONField(name = "LoanLvl5Cl")

    public String getLoanLvl5Cl() {
        return LoanLvl5Cl;
    }

    @JSONField(name = "LoanLvl5Cl")

    public void setLoanLvl5Cl(String LoanLvl5Cl) {
        this.LoanLvl5Cl = LoanLvl5Cl;
    }


    @JSONField(name = "PrjNo")

    public String getPrjNo() {
        return PrjNo;
    }

    @JSONField(name = "PrjNo")

    public void setPrjNo(String PrjNo) {
        this.PrjNo = PrjNo;
    }


    @JSONField(name = "IntSetlFrqcy")

    public String getIntSetlFrqcy() {
        return IntSetlFrqcy;
    }

    @JSONField(name = "IntSetlFrqcy")

    public void setIntSetlFrqcy(String IntSetlFrqcy) {
        this.IntSetlFrqcy = IntSetlFrqcy;
    }


    @JSONField(name = "ComIntRate")

    public Double getComIntRate() {
        return ComIntRate;
    }

    @JSONField(name = "ComIntRate")

    public void setComIntRate(Double ComIntRate) {
        this.ComIntRate = ComIntRate;
    }


    @JSONField(name = "PnyIntRate")

    public Double getPnyIntRate() {
        return PnyIntRate;
    }

    @JSONField(name = "PnyIntRate")

    public void setPnyIntRate(Double PnyIntRate) {
        this.PnyIntRate = PnyIntRate;
    }


    @JSONField(name = "CmpdIntRate")

    public Double getCmpdIntRate() {
        return CmpdIntRate;
    }

    @JSONField(name = "CmpdIntRate")

    public void setCmpdIntRate(Double CmpdIntRate) {
        this.CmpdIntRate = CmpdIntRate;
    }


    @JSONField(name = "PnyCmpdIntRate")

    public Double getPnyCmpdIntRate() {
        return PnyCmpdIntRate;
    }

    @JSONField(name = "PnyCmpdIntRate")

    public void setPnyCmpdIntRate(Double PnyCmpdIntRate) {
        this.PnyCmpdIntRate = PnyCmpdIntRate;
    }


    @JSONField(name = "CmpdedCmpdIntRate")

    public Double getCmpdedCmpdIntRate() {
        return CmpdedCmpdIntRate;
    }

    @JSONField(name = "CmpdedCmpdIntRate")

    public void setCmpdedCmpdIntRate(Double CmpdedCmpdIntRate) {
        this.CmpdedCmpdIntRate = CmpdedCmpdIntRate;
    }


    @JSONField(name = "ComIntRateFltIntPrt")

    public Double getComIntRateFltIntPrt() {
        return ComIntRateFltIntPrt;
    }

    @JSONField(name = "ComIntRateFltIntPrt")

    public void setComIntRateFltIntPrt(Double ComIntRateFltIntPrt) {
        this.ComIntRateFltIntPrt = ComIntRateFltIntPrt;
    }


    @JSONField(name = "PnyIntRateFltIntPrt")

    public Double getPnyIntRateFltIntPrt() {
        return PnyIntRateFltIntPrt;
    }

    @JSONField(name = "PnyIntRateFltIntPrt")

    public void setPnyIntRateFltIntPrt(Double PnyIntRateFltIntPrt) {
        this.PnyIntRateFltIntPrt = PnyIntRateFltIntPrt;
    }


    @JSONField(name = "CmpdIntRateFltIntPrt")

    public Double getCmpdIntRateFltIntPrt() {
        return CmpdIntRateFltIntPrt;
    }

    @JSONField(name = "CmpdIntRateFltIntPrt")

    public void setCmpdIntRateFltIntPrt(Double CmpdIntRateFltIntPrt) {
        this.CmpdIntRateFltIntPrt = CmpdIntRateFltIntPrt;
    }


    @JSONField(name = "PnyCmpdIntRateFltIntPrt")

    public Double getPnyCmpdIntRateFltIntPrt() {
        return PnyCmpdIntRateFltIntPrt;
    }

    @JSONField(name = "PnyCmpdIntRateFltIntPrt")

    public void setPnyCmpdIntRateFltIntPrt(Double PnyCmpdIntRateFltIntPrt) {
        this.PnyCmpdIntRateFltIntPrt = PnyCmpdIntRateFltIntPrt;
    }


    @JSONField(name = "CmpdedCmpdIntRateFltIntPrt")

    public Double getCmpdedCmpdIntRateFltIntPrt() {
        return CmpdedCmpdIntRateFltIntPrt;
    }

    @JSONField(name = "CmpdedCmpdIntRateFltIntPrt")

    public void setCmpdedCmpdIntRateFltIntPrt(Double CmpdedCmpdIntRateFltIntPrt) {
        this.CmpdedCmpdIntRateFltIntPrt = CmpdedCmpdIntRateFltIntPrt;
    }


    @JSONField(name = "NxtIntSetlDt")

    public String getNxtIntSetlDt() {
        return NxtIntSetlDt;
    }

    @JSONField(name = "NxtIntSetlDt")

    public void setNxtIntSetlDt(String NxtIntSetlDt) {
        this.NxtIntSetlDt = NxtIntSetlDt;
    }


    @JSONField(name = "IntSetlDt")

    public String getIntSetlDt() {
        return IntSetlDt;
    }

    @JSONField(name = "IntSetlDt")

    public void setIntSetlDt(String IntSetlDt) {
        this.IntSetlDt = IntSetlDt;
    }


    @JSONField(name = "MblNo")

    public String getMblNo() {
        return MblNo;
    }

    @JSONField(name = "MblNo")

    public void setMblNo(String MblNo) {
        this.MblNo = MblNo;
    }


    @JSONField(name = "NrlIntRtBnchmrkFlotPrcntl")

    public Double getNrlIntRtBnchmrkFlotPrcntl() {
        return NrlIntRtBnchmrkFlotPrcntl;
    }

    @JSONField(name = "NrlIntRtBnchmrkFlotPrcntl")

    public void setNrlIntRtBnchmrkFlotPrcntl(Double NrlIntRtBnchmrkFlotPrcntl) {
        this.NrlIntRtBnchmrkFlotPrcntl = NrlIntRtBnchmrkFlotPrcntl;
    }


    @JSONField(name = "PnyIntIntRtBnchmrkFlotPrcntl")

    public Double getPnyIntIntRtBnchmrkFlotPrcntl() {
        return PnyIntIntRtBnchmrkFlotPrcntl;
    }

    @JSONField(name = "PnyIntIntRtBnchmrkFlotPrcntl")

    public void setPnyIntIntRtBnchmrkFlotPrcntl(Double PnyIntIntRtBnchmrkFlotPrcntl) {
        this.PnyIntIntRtBnchmrkFlotPrcntl = PnyIntIntRtBnchmrkFlotPrcntl;
    }


    @JSONField(name = "CmpdIntRtBnchmrkFlotPrcntl")

    public Double getCmpdIntRtBnchmrkFlotPrcntl() {
        return CmpdIntRtBnchmrkFlotPrcntl;
    }

    @JSONField(name = "CmpdIntRtBnchmrkFlotPrcntl")

    public void setCmpdIntRtBnchmrkFlotPrcntl(Double CmpdIntRtBnchmrkFlotPrcntl) {
        this.CmpdIntRtBnchmrkFlotPrcntl = CmpdIntRtBnchmrkFlotPrcntl;
    }


    @JSONField(name = "PnyIntCmpdRtBnchmrkFlotPrcntl")

    public Double getPnyIntCmpdRtBnchmrkFlotPrcntl() {
        return PnyIntCmpdRtBnchmrkFlotPrcntl;
    }

    @JSONField(name = "PnyIntCmpdRtBnchmrkFlotPrcntl")

    public void setPnyIntCmpdRtBnchmrkFlotPrcntl(Double PnyIntCmpdRtBnchmrkFlotPrcntl) {
        this.PnyIntCmpdRtBnchmrkFlotPrcntl = PnyIntCmpdRtBnchmrkFlotPrcntl;
    }


    @JSONField(name = "CmpdIntCmpdRtBnchmrkFlotPrcntl")

    public Double getCmpdIntCmpdRtBnchmrkFlotPrcntl() {
        return CmpdIntCmpdRtBnchmrkFlotPrcntl;
    }

    @JSONField(name = "CmpdIntCmpdRtBnchmrkFlotPrcntl")

    public void setCmpdIntCmpdRtBnchmrkFlotPrcntl(Double CmpdIntCmpdRtBnchmrkFlotPrcntl) {
        this.CmpdIntCmpdRtBnchmrkFlotPrcntl = CmpdIntCmpdRtBnchmrkFlotPrcntl;
    }


    @JSONField(name = "IntSetInfArry")

    public List<IntSetInfArry> getIntSetInfArry() {
        return IntSetInfArrys;
    }

    @JSONField(name = "IntSetInfArry")

    public void setIntSetInfArry(List<IntSetInfArry> IntSetInfArry) {
        this.IntSetInfArrys = IntSetInfArry;
    }

    public static class IntSetInfArry implements Serializable {
        // 结算账户分类
        private String BlgAcctCl;
        // 结算方式
        private String BlgMth;
        // 账户分类
        private String AcctCtgry;
        // 金额类型
        private String AmtType;
        // 结算客户号
        private String BlgCstNo;
        // 结算账号
        private String BlgAcctNo;
        // 结算账户产品类型
        private String BlgAcctProdType;
        // 结算账户币种
        private String BlgAcctCurrCd;
        // 结算账户序号
        private String BlgAcctSrlNo;
        // 自动锁定标记
        private String AtmLockMark;
        // 贷款优先级
        private String LoanPrtyLvl;
        // 结算权重
        private Double BlgRto;
        // 行内外标志
        private String BankInsdOutSdFlg;
        // 账户名称
        private String AcctNm;
        // 结算账户行号
        private String BlgAcctBnkNo;
        // 本行他行标志
        private String OwnOthrBankflg;

        @JSONField(name = "BlgAcctCl")

        public String getBlgAcctCl() {
            return BlgAcctCl;
        }

        @JSONField(name = "BlgAcctCl")

        public void setBlgAcctCl(String BlgAcctCl) {
            this.BlgAcctCl = BlgAcctCl;
        }



        @JSONField(name = "BlgMth")

        public String getBlgMth() {
            return BlgMth;
        }

        @JSONField(name = "BlgMth")

        public void setBlgMth(String BlgMth) {
            this.BlgMth = BlgMth;
        }



        @JSONField(name = "AcctCtgry")

        public String getAcctCtgry() {
            return AcctCtgry;
        }

        @JSONField(name = "AcctCtgry")

        public void setAcctCtgry(String AcctCtgry) {
            this.AcctCtgry = AcctCtgry;
        }



        @JSONField(name = "AmtType")

        public String getAmtType() {
            return AmtType;
        }

        @JSONField(name = "AmtType")

        public void setAmtType(String AmtType) {
            this.AmtType = AmtType;
        }



        @JSONField(name = "BlgCstNo")

        public String getBlgCstNo() {
            return BlgCstNo;
        }

        @JSONField(name = "BlgCstNo")

        public void setBlgCstNo(String BlgCstNo) {
            this.BlgCstNo = BlgCstNo;
        }



        @JSONField(name = "BlgAcctNo")

        public String getBlgAcctNo() {
            return BlgAcctNo;
        }

        @JSONField(name = "BlgAcctNo")

        public void setBlgAcctNo(String BlgAcctNo) {
            this.BlgAcctNo = BlgAcctNo;
        }



        @JSONField(name = "BlgAcctProdType")

        public String getBlgAcctProdType() {
            return BlgAcctProdType;
        }

        @JSONField(name = "BlgAcctProdType")

        public void setBlgAcctProdType(String BlgAcctProdType) {
            this.BlgAcctProdType = BlgAcctProdType;
        }



        @JSONField(name = "BlgAcctCurrCd")

        public String getBlgAcctCurrCd() {
            return BlgAcctCurrCd;
        }

        @JSONField(name = "BlgAcctCurrCd")

        public void setBlgAcctCurrCd(String BlgAcctCurrCd) {
            this.BlgAcctCurrCd = BlgAcctCurrCd;
        }



        @JSONField(name = "BlgAcctSrlNo")

        public String getBlgAcctSrlNo() {
            return BlgAcctSrlNo;
        }

        @JSONField(name = "BlgAcctSrlNo")

        public void setBlgAcctSrlNo(String BlgAcctSrlNo) {
            this.BlgAcctSrlNo = BlgAcctSrlNo;
        }



        @JSONField(name = "AtmLockMark")

        public String getAtmLockMark() {
            return AtmLockMark;
        }

        @JSONField(name = "AtmLockMark")

        public void setAtmLockMark(String AtmLockMark) {
            this.AtmLockMark = AtmLockMark;
        }



        @JSONField(name = "LoanPrtyLvl")

        public String getLoanPrtyLvl() {
            return LoanPrtyLvl;
        }

        @JSONField(name = "LoanPrtyLvl")

        public void setLoanPrtyLvl(String LoanPrtyLvl) {
            this.LoanPrtyLvl = LoanPrtyLvl;
        }



        @JSONField(name = "BlgRto")

        public Double getBlgRto() {
            return BlgRto;
        }

        @JSONField(name = "BlgRto")

        public void setBlgRto(Double BlgRto) {
            this.BlgRto = BlgRto;
        }



        @JSONField(name = "BankInsdOutSdFlg")

        public String getBankInsdOutSdFlg() {
            return BankInsdOutSdFlg;
        }

        @JSONField(name = "BankInsdOutSdFlg")

        public void setBankInsdOutSdFlg(String BankInsdOutSdFlg) {
            this.BankInsdOutSdFlg = BankInsdOutSdFlg;
        }



        @JSONField(name = "AcctNm")

        public String getAcctNm() {
            return AcctNm;
        }

        @JSONField(name = "AcctNm")

        public void setAcctNm(String AcctNm) {
            this.AcctNm = AcctNm;
        }



        @JSONField(name = "BlgAcctBnkNo")

        public String getBlgAcctBnkNo() {
            return BlgAcctBnkNo;
        }

        @JSONField(name = "BlgAcctBnkNo")

        public void setBlgAcctBnkNo(String BlgAcctBnkNo) {
            this.BlgAcctBnkNo = BlgAcctBnkNo;
        }



        @JSONField(name = "OwnOthrBankflg")

        public String getOwnOthrBankflg() {
            return OwnOthrBankflg;
        }

        @JSONField(name = "OwnOthrBankflg")

        public void setOwnOthrBankflg(String OwnOthrBankflg) {
            this.OwnOthrBankflg = OwnOthrBankflg;
        }
    }

    public static String getSVCFLD() {
        return SVCFLD;
    }

    public static String getSVCTP() {
        return SVCTP;
    }

    public static String getSERVICECD() {
        return SERVICECD;
    }
}
